const koa = require('koa')
const router = require('koa-router')()

const app = new koa()

app.use(async (ctx,next) => { 
    console.log('11111')
    await next()

    if (ctx.status !== 404) { 
        console.log('4444')
    }
})
app.use(async (ctx,next) => { 
    console.log('22222222')
    await next()

    if (ctx.status !== 404) { 
        console.log('33333333')
    }
})

router.get('/home', async ctx => { 
    console.log(new Date())
    ctx.body = '主页'
})

/*
    以上的代码执行结果为
        11111
        22222222
        2020-04-14T09:06:33.409Z
        33333333
        4444

    所以我们可以知道中间键的执行过程就非常的类似于洋葱 一层一层的
        从也有点类似于栈  先进后出 后进先出的概念
*/ 
app.use(router.routes())

app.listen(666, () => { 
    console.log('Server is running on port 666')
})